#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int count = 0; // 全局变量作为计数器

void move(int *count, char a, char c)
{
    (*count)++;
    printf("第%d步:从%c移动到%c\n", *count, a, c);
}

void hanoi(int n, char x, char y, char z)
{
    if (n == 1)
    {
        move(&count, x, z);
    }
    else
    {
        hanoi(n - 1, x, z, y); // 把x上的n-1个移动到y上,z为辅助
        move(&count, x, z);    // 移动x上的最后一个到z
        hanoi(n - 1, y, x, z); // 把y上剩余的移动到z,x做辅助
    }
}

int main()
{
    char x = 'a', y = 'b', z = 'c'; // 三根柱子,分别叫a,b,c;
    int n = 3;
    // 把n个圆盘在x移动到z上,y作为辅助盘
    hanoi(n, x, y, z);
    return 0;
}